iT邦幫忙

2023 iThome 鐵人賽

DAY 26
0
SideProject30

從零開始的外匯自動程式交易系列 第 26

DAY26 指標介紹(下)

  • 分享至 

  • xImage
  •  

Average True Range(ATR)

用於衡量市場價格的波動性。它根據價格變化的幅度來計算,越大的ATR值表示市場越波動。 ATR可用於確定止損和止盈水平,並協助交易者在波動性高的市場環境中選擇合適的交易策略。

  • 範例:
double atrArray[];
int period = 14; // ATR的期間

ArraySetAsSeries(atrArray, true); // 設置數組為倒序
ArrayResize(atrArray, Bars); // 設置數組大小為歷史數據的Bars

for(int i = 0; i < Bars; i++)
{
    atrArray[i] = iATR(Symbol(), 0, period, i);
}

PSAR(Parabolic Stop and Reverse)

用於識別市場趨勢的轉變點。它以點的形式顯示在價格圖表上,根據價格趨勢而移動。當抛物線停止點位於價格之下時,表示趨勢上升,反之則表示趨勢下降。

  • 範例:
double sarArray[];
double af = 0.02; // 加速因子的初始值
double maxAF = 0.2; // 最大加速因子

ArraySetAsSeries(sarArray, true); // 設置數組為倒序
ArrayResize(sarArray, Bars); // 設置數組大小為歷史數據的Bars

double prevSAR = 0;
double prevEP = 0;

for(int i = 0; i < Bars; i++)
{
    sarArray[i] = iSAR(Symbol(), 0, af, maxAF, 0, i);
    
    // 如果趨勢反轉,重新設置加速因子和極值點
    if (prevSAR != 0 && prevSAR != sarArray[i])
    {
        af = 0.02;
        prevEP = sarArray[i - 1];
    }
    
    prevSAR = sarArray[i];
}

斐波那契回撤水平(Fibonacci retracement levels)

用於識別資產價格的潛在支撐和阻力水平。這些水平基於斐波那契數字序列,通常包括23.6%、38.2%、50%、61.8%和76.4%等水平,用於預測價格回撤的程度和可能的反彈。

  • 範例:
// 設置Fibonacci回撤水平的高點和低點
double highPrice = iHigh(Symbol(), 0, iHighest(Symbol(), 0, MODE_HIGH, 100, 0));
double lowPrice = iLow(Symbol(), 0, iLowest(Symbol(), 0, MODE_LOW, 100, 0));

// 計算Fibonacci水平
double fibLevels[] = {0.236, 0.382, 0.500, 0.618, 0.764};
double fibPriceLevels[5];

for (int i = 0; i < 5; i++)
{
    fibPriceLevels[i] = highPrice - (fibLevels[i] * (highPrice - lowPrice));
}

// 繪製水平線
for (int i = 0; i < 5; i++)
{
    ObjectCreate(0, "FibLevel" + IntegerToString(i), OBJ_HLINE, 0, 0, 0);
    ObjectSetInteger(0, "FibLevel" + IntegerToString(i), OBJPROP_COLOR, clrRed);
    ObjectSetInteger(0, "FibLevel" + IntegerToString(i), OBJPROP_RAY_LEFT, false);
    ObjectSetDouble(0, "FibLevel" + IntegerToString(i), OBJPROP_PRICE1, fibPriceLevels[i]);
}

威廉指標(Williams %R)

用於測量市場中的超買和超賣情況。其值範圍從-100到0之間,通常超過-20表示超買,低於-80表示超賣。

  • 範例:
double williamsRArray[];
int period = 14; // 威廉指標的計算期間

ArraySetAsSeries(williamsRArray, true); // 設置數組為倒序
ArrayResize(williamsRArray, Bars); // 設置數組大小為歷史數據的Bars

for(int i = 0; i < Bars; i++)
{
    williamsRArray[i] = iWPR(Symbol(), 0, period, i);
}

艾略特波浪理論(Elliott Wave Theory)

是一種用於技術分析的綜合性方法,由Ralph Nelson Elliott於20世紀初提出。該理論主張市場價格的運動不是隨機的,而是按照特定的波浪結構和週期進行變動。這種理論在股票、外匯、商品和其他金融市場中廣泛應用,可以幫助交易者識別市場趨勢、反轉和潛在的交易機會。

Elliott波浪理論的基本概念:

  1. 波浪結構:根據Elliott,市場價格遵循一個特定的波浪結構,其中包括五個上升波浪(1、2、3、4、5)和三個下降波浪(A、B、C)。上升波浪代表市場上漲,下降波浪代表市場下跌。

  2. 波浪週期:每個波浪結構都包括不同的週期,從大趨勢(超級週期)到短期波動(小週期)。交易者使用這些週期來預測市場的未來動向。

  3. 波浪的比例:Elliott波浪理論強調黃金比例(0.618)和斐波那契比例(0.382)在波浪結構中的應用。這些比例用於確定波浪的長度和關鍵價格水平。

  4. 波浪的規律: (參考自OANDA Lab)

    規律一:必須有5波組成。
    規律二:衝擊波的第1波是推動波,第2波是三角形以外的調整波,第3波是推動波的衝擊波,第4波是調整波,第5波是推動波。
    規律三:第2波不能超過(或跌破)第1波的始點。
    規律四:1波、3波、5波中第3波不能是最小波。(也不需要是最大波)
    規律五:第1波和第4波不能重疊。

這個理論較為複雜,這邊只是簡單概述,大致內容我還在吸收中,未來有機會再寫一篇跟大家分享!


上一篇
DAY25 指標介紹(上)
下一篇
DAY27 回測
系列文
從零開始的外匯自動程式交易30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言